কন্ট্রোল স্টেটমেন্ট হল এমন স্টেটমেন্টস যা প্রোগ্রামের নিয়ন্ত্রণ কাঠামো নিয়ন্ত্রণ করে, অর্থাৎ তারা কোন অংশে কার্যকরী হবে তা নির্ধারণ করে। সি প্রোগ্রামিং ভাষায় তিন ধরনের কন্ট্রোল স্টেটমেন্ট রয়েছে:
- নির্দেশিক স্টেটমেন্ট (Sequential Statements): সাধারণত প্রোগ্রামের স্টেটমেন্টগুলো একটি একের পর এক চলতে থাকে, তবে কন্ট্রোল স্টেটমেন্টের মাধ্যমে আমরা তাদের নিয়ন্ত্রণ করতে পারি।
- শর্তযুক্ত স্টেটমেন্ট (Conditional Statements): শর্ত অনুসারে কোনো কোড ব্লক কার্যকর হবে, যেমন
if,else, এবংswitchস্টেটমেন্ট। - লুপিং স্টেটমেন্ট (Looping Statements): কোনো কোড নির্দিষ্ট সংখ্যক বার বা একটি শর্ত পূর্ণ হওয়া পর্যন্ত চলতে থাকে, যেমন
for,while, এবংdo-whileস্টেটমেন্ট।
এগুলির মাধ্যমে সি প্রোগ্রামে কার্যক্রম নিয়ন্ত্রণ করা যায়।
১. শর্তযুক্ত স্টেটমেন্ট (Conditional Statements)
শর্তযুক্ত স্টেটমেন্ট ব্যবহার করে আমরা শর্তানুযায়ী কোনো কোড ব্লক চালাতে পারি। সি ভাষায় প্রধান শর্তযুক্ত স্টেটমেন্টগুলি হল if, else if, এবং switch.
if স্টেটমেন্ট:
if স্টেটমেন্ট শর্ত পূর্ণ হলে একটি নির্দিষ্ট কোড ব্লক চালায়।
#include <stdio.h>
int main() {
int a = 5, b = 10;
if (a > b) {
printf("a is greater than b\n");
}
return 0;
}ব্যাখ্যা:
if (a > b): যদিaএর মানbথেকে বড় হয়, তবেifব্লক কার্যকর হবে।
else স্টেটমেন্ট:
else স্টেটমেন্ট if শর্ত মিথ্যা হলে কার্যকর হয়।
#include <stdio.h>
int main() {
int a = 5, b = 10;
if (a > b) {
printf("a is greater than b\n");
} else {
printf("b is greater than a\n");
}
return 0;
}ব্যাখ্যা:
else: যদিifশর্ত মিথ্যা হয়, তবেelseব্লক কার্যকর হবে।
else if স্টেটমেন্ট:
একাধিক শর্ত যাচাই করতে else if ব্যবহৃত হয়।
#include <stdio.h>
int main() {
int a = 5, b = 5;
if (a > b) {
printf("a is greater than b\n");
} else if (a < b) {
printf("b is greater than a\n");
} else {
printf("a and b are equal\n");
}
return 0;
}ব্যাখ্যা:
- এখানে প্রথমে
ifচেক করা হয়, যদি তা মিথ্যা হয় তবেelse ifচেক হয়, এবং যদি সব শর্ত মিথ্যা হয় তবেelseকার্যকর হবে।
switch স্টেটমেন্ট:
switch স্টেটমেন্ট একাধিক বিকল্পের মধ্যে একটি সঠিক বিকল্প নির্বাচন করতে ব্যবহৃত হয়।
#include <stdio.h>
int main() {
int num = 2;
switch (num) {
case 1:
printf("One\n");
break;
case 2:
printf("Two\n");
break;
case 3:
printf("Three\n");
break;
default:
printf("Invalid number\n");
}
return 0;
}ব্যাখ্যা:
switch: এটি একটি নির্দিষ্ট মানের জন্য নির্ধারিত কোড ব্লক কার্যকর করে।breakস্টেটমেন্টটি প্রয়োজনীয়, যাতে পরবর্তীcaseব্লকটি কার্যকর না হয়।
২. লুপিং স্টেটমেন্ট (Looping Statements)
লুপিং স্টেটমেন্ট ব্যবহার করে কোনো কোড বার বার চালানো যায়। সি ভাষায় প্রধান লুপিং স্টেটমেন্টগুলি হল for, while, এবং do-while.
for লুপ:
for লুপ নির্দিষ্ট সংখ্যক বার একটি কোড ব্লক কার্যকর করে।
#include <stdio.h>
int main() {
for (int i = 0; i < 5; i++) {
printf("Iteration %d\n", i);
}
return 0;
}ব্যাখ্যা:
for (int i = 0; i < 5; i++): এটি ৫ বার লুপ চালাবে, এবং প্রতিবারiএর মান প্রিন্ট করবে।
while লুপ:
while লুপ একটি শর্ত সঠিক হওয়া পর্যন্ত কোড চালাতে থাকে।
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
printf("Iteration %d\n", i);
i++;
}
return 0;
}ব্যাখ্যা:
while (i < 5): যতক্ষণ নাiএর মান ৫ এর কম, লুপ চলবে। এখানেi++দিয়েiএর মান বাড়ানো হয়।
do-while লুপ:
do-while লুপে কোড প্রথমে একবার চালানো হয় এবং পরে শর্ত চেক করা হয়।
#include <stdio.h>
int main() {
int i = 0;
do {
printf("Iteration %d\n", i);
i++;
} while (i < 5);
return 0;
}ব্যাখ্যা:
do { ... } while (i < 5);: কোডটি প্রথমে একবার চলবে, তারপর শর্ত পরীক্ষা হবে। এর ফলে কমপক্ষে একবার কোড চলবে।
৩. ব্রেক এবং কন্টিনিউ (Break and Continue)
break: লুপ বা সুইচ স্টেটমেন্ট থেকে বের হতে ব্যবহৃত হয়।continue: লুপে পরবর্তী পুনরাবৃত্তিতে যেতে ব্যবহৃত হয়।
break উদাহরণ:
#include <stdio.h>
int main() {
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // Exit the loop when i is 5
}
printf("%d\n", i);
}
return 0;
}continue উদাহরণ:
#include <stdio.h>
int main() {
for (int i = 0; i < 10; i++) {
if (i == 5) {
continue; // Skip the rest of the loop when i is 5
}
printf("%d\n", i);
}
return 0;
}সারসংক্ষেপ:
সি প্রোগ্রামিং ভাষায় কন্ট্রোল স্টেটমেন্ট এর মাধ্যমে আমরা প্রোগ্রামের কার্যক্রম নিয়ন্ত্রণ করতে পারি। শর্তযুক্ত স্টেটমেন্ট (if, else, switch) এবং লুপিং স্টেটমেন্ট (for, while, do-while) আমাদের বিভিন্ন শর্ত এবং পুনরাবৃত্তি কাজ করতে সাহায্য করে। এছাড়া, break এবং continue ব্যবহার করে লুপের গতিকে নিয়ন্ত্রণ করা সম্ভব।
সিদ্ধান্ত গ্রহণের জন্য প্রোগ্রামিং এ সচরাচর কন্ডিশনাল(conditional) স্টেটমেন্ট ব্যবহৃত হয়। এই অধ্যায়ে আপনি সি প্রোগ্রামিং if কন্ডিশনাল স্টেটমেন্ট ব্যবহার করে সিদ্ধান্ত গ্রহণ করা শিখবেন।
সি প্রোগ্রামিং ইফ স্টেটমেন্ট
সি প্রোগ্রামিং এ তিন ধরণের if কন্ডিশনাল(conditional) স্টেটমেন্ট রয়েছেঃ
সি if স্টেটমেন্ট সিন্ট্যাক্স
if (testExpression)
{
// এই কোড এক্সিকিউট হবে।
}
এখানে if প্রথমে testExpression-কে মূল্যায়ন করে।
testExpression যদি True(শূন্য না) হয় তাহলে if ব্লকের মধ্যে অবস্থিত স্টেটমেন্ট/স্টেটমেন্টসমূহ সম্পাদিত হবে।
testExpression যদি False(শূন্য) হয় তাহলে if ব্লকের মধ্যে অবস্থিত স্টেটমেন্ট/স্টেটমেন্টসমূহ এড়িয়ে যাবে।
testExpression এর ভ্যালু কখন True এবং কখন False হয় তা আমাদের রিলেশনাল(relational) এবং লজিক্যাল(logical) অপারেরটর পেজে আলোচনা করা হয়েছে।
সি if স্টেটমেন্টের ফ্লোচার্ট

উদাহরনঃ সি if স্টেটমেন্ট
kt_satt_skill_example_id=147
ইউজার যখন 5 প্রবেশ করায় তখন টেস্ট এক্সপ্রেশন (testNumber > 0) True হয়। সুতরাং আপনার প্রবেশ করানো 5 প্রদর্শিত হবে।
আউটপুট ২
Enter an integer: -6 The if statement is easy in C programming.
ইউজার যখন -6 প্রবেশ করায় তখন টেস্ট এক্সপ্রেশন (testNumber < 0) False হয়। সুতরাং কম্পাইলার if এর ভেতরের স্টেটমেন্টকে এড়িয়ে যায়।
if স্টেটমেন্ট ভালভাবে বুঝার জন্য নিন্মে আরো একটি উদাহরণ দেওয়া হলোঃ
kt_satt_skill_example_id=150
সিদ্ধান্ত গ্রহণের জন্য প্রোগ্রামিং এ সচরাচর কন্ডিশনাল(conditional) স্টেটমেন্ট ব্যবহৃত হয়। এই অধ্যায়ে আপনি সি প্রোগ্রামিং if...else এবং নেস্টেড if...else স্টেটমেন্ট ব্যবহার করে সিদ্ধান্ত গ্রহণ করা শিখবেন।
সি if...else স্টেটমেন্ট
কন্ডিশন True হলে কিছু কোড এবং False হলে অন্য কিছু কোড সম্পাদন(execution) এর জন্য সি if...else স্টেটমেন্ট ব্যবহৃত হয়।
if...else সিনট্যাক্স
if (testExpression) {
// True হলে এই কোড এক্সিকিউট হবে।
}
else {
// False হলে এই কোড এক্সিকিউট হবে।
}
টেস্ট এক্সপ্রেশন True হলে if স্টেটমেন্টের কোড ব্লক এক্সিকিউট হবে এবং else স্টেটমেন্টের কোড ব্লককে এড়িয়ে যাবে।
টেস্ট এক্সপ্রেশন false হলে else স্টেটমেন্টের কোড ব্লক সম্পাদিত হবে এবং if স্টেটমেন্টের কোড ব্লককে এড়িয়ে যাবে।
if...else স্টেটমেন্টের ফ্লোচার্ট

উদাহরন ১: সি if...else স্টেটমেন্ট
kt_satt_skill_example_id=157
উদাহরন ২: সি if...else স্টেটমেন্ট
kt_satt_skill_example_id=158
যখন ইউজার 9 প্রবেশ করায় তখন টেস্ট এক্সপ্রেশন (testNumber%2 == 0 ) এর ভ্যালু false হয়। সুতরাং else স্টেটমেন্টের মধ্যে অবস্থিত printf("%d is an odd integer"); স্টেটমেন্ট এক্সিকিউশন হয় এবং if এর মধ্যে অবস্থিত স্টেটমেন্টকে এড়িয়ে যায়।
নেস্টেট if...else স্টেটমেন্ট
কন্ডিশন True/False যাই হোক না কেন আমরা কোড এক্সিকিউট করতে চাই অর্থাৎ সিদ্ধান্ত গ্রহণ করতে চাই সেক্ষেত্রে if...else স্টেটমেন্ট ব্যবহৃত হয়। কিন্তু মাঝে মাঝে সিদ্ধান্ত গ্রহণ দুই এর অধিক কন্ডিশনের উপর নির্ভর করতে পারে।
দুই এর অধিক এক্সপ্রেশনকে টেস্ট করে কোড এক্সিকিউট করার জন্য নেস্টেড if...else স্টেটমেন্ট ব্যবহৃত হয়।
নেস্টেট if...else সিনট্যাক্স
if (testExpression1)
{
//testExpression1 True হলে এই কোড এক্সিকিউট হবে।
}
else if(testExpression2)
{
// testExpression1 false এবং testExpression2 True হলে এই কোড ব্লক এক্সিকিউট হবে।
}
else if (testExpression3)
{
//testExpression1 ও testExpression2 false এবং testExpression3 True হলে এই কোড ব্লক এক্সিকিউট হবে।
}
.
.
else
{
// সকল testExpression false হলে এই কোড ব্লক এক্সিকিউট হবে।
}উদাহরন ১: সি নেস্টেড if...else স্টেটমেন্ট
kt_satt_skill_example_id=159
উদাহরন ২: সি নেস্টেড if...else স্টেটমেন্ট
kt_satt_skill_example_id=160
অনেক ভ্যালুর বিপরীতে সিদ্ধান্ত গ্রহণের জন্য আপনি সুইস(switch) স্টেটমেন্টও ব্যবহার করতে পারেন।
কোনো নির্দিষ্ট কোড ব্লককে রিপিট(repeat) করার জন্য প্রোগ্রামিং এ লুপ(loop) ব্যবহৃত হয়। এই অধ্যায়ে আপনি সি প্রোগ্রামিং এ for লুপ তৈরি করা শিখবেন।
কন্ডিশন(condition) মিথ্যা না হওয়া পর্যন্ত কোনো কোড ব্লককে রিপিট(repeat) করার জন্য প্রোগ্রামিং এ লুপ ব্যবহৃত হয়। সি প্রোগ্রামিং এ তিন ধরণের লুপ রয়েছেঃ
- সি ফর লুপ-for loop
- সি হোয়াইল লুপ - while loop
- সি ডু...হোয়াইল লুপ - do...while loop
সি for লুপ
সি for লুপের সিনট্যাক্স
for (initializationStatement; testExpression; updateStatement)
{
// এই কোড এক্সিকিউট হবে
}
ফর লুপ কিভাবে কাজ করে?
- initializationStatement কেবলমাত্র একবার এক্সিকিউট(execute)হয়।
- তারপরে testExpression এক্সিকিউট হয়। ইহা false(0) হলে for লুপের সমাপ্তি ঘটে। কিন্তু টেস্ট এক্সপ্রেশনের ভ্যালু যদি True হয় তাহলে
forলুপের কোড ব্লক এক্সিকিউট হয় এবং updateStatement এর ভ্যালু আপডেট হয়। - testExpression মিথ্যা না হওয়া পর্যন্ত ইহা চলতেই থাকে।
নোটঃ ইটারেশন(iteration) এর সংখ্যা আগে থেকে জানা থাকলে সাধারণত for লুপ ব্যবহৃত হয়।
testExpression এর ভ্যালু কখন True এবং কখন False হয়ঃ রিলেশনাল(relational) এবং লজিক্যাল(logical) অপারেরটর পেজে আলোচনা করা হয়েছে।
for লুপের ফ্লোচার্ট

উদাহরণ ১: for loop
kt_satt_skill_example_id=202
উদাহরণ ২: for loop
kt_satt_skill_example_id=204
উপরের উদাহরণের ব্যাখ্যাঃ
- ইউজার কর্তৃক প্রবেশ করানো ভ্যালু num ভ্যারিয়েবলে জমা হয়। ধরে নিই, ইউজার 10 প্রবেশ করিয়েছে।
- count ভ্যারিয়েবলের ইনিশিয়াল(initial) ভ্যালু 1 এসাইন(assign) করা হয়েছে এবং test expression মূল্যায়িত হবে। যেহেতু
count <= num(10 এর চেয়ে 1 ছোট) সত্য, সুতরাং লুপের কোড ব্লক এক্সিকিউট(execute) হবে এবং sum এর ভ্যালু 1 এর সমান হবে।- তারপরে updateStatement
++countএক্সিকিউট হয়ে count এর ভ্যালু 2 এর সমান হবে। পুনরায় testExpression এক্সিকিউট হবে। যেহেতু 10 এর থেকে 2 ছোট, সুতরাং testExpression এর ভ্যালু true হবে এবং লুপের কোড ব্লক এক্সিকিউট হবে। sum এর ভ্যালু 3 এর সমান হবে।- count এর ভ্যালু 11 এ না পৌঁছা পর্যন্ত এই প্রক্রিয়া চলতে থাকবে এবং sum এর ভ্যালু নির্ণয় হবে।
- যখন count এর ভ্যালু 11 এর সমান হবে তখন testExpression মিথ্যা হয়ে যাবে কারণ 10 এর চেয়ে 11 ছোট বা সমান নয়। সুতরাং এখানে লুপের সমাপ্তি ঘটবে এবং এর পরবর্তী কোড সম্পাদিত হবে। লুপ শেষে sum প্রিন্ট হবে।
নির্দিষ্ট কোড ব্লককে রিপিট(repeat) করার জন্য প্রোগ্রামিং এ লুপ ব্যবহৃত হয়। এই অধ্যায়ে আপনি সি প্রোগ্রামিং এ while লুপ তৈরি করা শিখবেন।
সর্বশেষ শর্তে না পৌঁছা পর্যন্ত নির্দিষ্ট কোড ব্লককে রিপিট(repeat) করার জন্য লুপ ব্যবহৃত হয়। সি প্রোগ্রামিং এ তিন ধরণের লুপ রয়েছেঃ
- ফর লুপ - for loop
- হোয়াইল লুপ - while loop
- ডু...হোয়াইল লুপ - do...while loop
হোয়াইল লুপের সিনট্যাক্সঃ
while (testExpression)
{
//এই কোড এক্সিকিউট হবে
}
হোয়াইল লুপ কিভাবে কাজ করে?
whileলুপ প্রথমে testExpression কে নির্ণয় করে।- যদি testExpression এর এর ভ্যালু true হয় তাহলে
whileলুপের ভেতরের কোড এক্সিকিউট(execute) হয়। testExpression পূনরায় নির্ণয় হয়। test expression এর ভ্যালু false(0) না হওয়া পর্যন্ত এই প্রক্রিয়া চলতে থাকে। - যখন testExpression এর ভ্যালু false হয় তখন while লুপের সমাপ্তি ঘটে।
হোয়াইল লুপের ফ্লোচার্ট

উদাহরন ১: হোয়াইল লুপ
kt_satt_skill_example_id=206
উদাহরন 2: হোয়াইল লুপ
kt_satt_skill_example_id=208
সি প্রোগ্রামে do...while লুপ কমপক্ষে একবার এক্সিকিউশনের নিশ্চয়তা দিয়ে থাকে। এই অধ্যায়ে আপনি সি প্রোগ্রামে do...while লুপ তৈরি করা শিখবেন।
সর্বশেষ শর্তে না পৌঁছা পর্যন্ত নির্দিষ্ট কোড ব্লককে রিপিট(repeat) করার জন্য লুপ ব্যবহৃত হয়। সি প্রোগ্রামিং এ তিন ধরণের লুপ রয়েছেঃ
- ফর লুপ - for loop
- হোয়াইল লুপ - while loop
- ডু...হোয়াইল লুপ - do...while loop
সি প্রোগ্রামিং do...while লুপের সিনট্যাক্স
do
{
// এই কোড এক্সিকিউট হবে
}
while (testExpression);
Copy
শুধুমাত্র একটি গুরুত্বপূর্ণ পার্থক্য ছাড়া do..while লুপ এবং while লুপ একই রকম। testExpression কে চেক করার পূর্বেই do...while লুপের কোড ব্লক একবার এক্সিকিউশন(execution) হয়। সুতরাং do...while লুপ কমপক্ষে একবার এক্সিকিউশন হয়।
সি প্রোগ্রামিং do...while লুপ কিভাবে কাজ করে?
- দ্বিতীয় বন্ধনীর ভেতরের কোড ব্লক প্রথমে একবার সম্পাদিত(executed) হয়।
- তারপরে testExpression নির্ণয় হয়। যদি testExpression সত্য হয় তাহলে লুপের বডি পূনরায় সম্পাদিত হয়। টেষ্ট এক্সপ্রেশন মিথ্যা না হওয়া পর্যন্ত এই প্রক্রিয়া চলতে থাকে।
- যখন টেষ্ট এক্সপ্রেশন মিথ্যা হয়ে যায় বা ভ্যালু 0(শূন্য) হয় তখন
do...whileলুপের সমাপ্তি ঘটে।
সি প্রোগ্রামিং ডু...হোয়াইল লুপের ফ্লোচার্ট

উদাহরণ ১: ডু...হোয়াইল লুপ
kt_satt_skill_example_id=217
উদাহরণ ২: সি প্রোগ্রামিং ডু...হোয়াইল লুপ
kt_satt_skill_example_id=218
testExpression এর ভ্যালু কখন True এবং কখন False হয়ঃ রিলেশনাল(relational) এবং লজিক্যাল(logical) অপারেরটর পেজে আলোচনা করা হয়েছে।
লুপের সাধারণ ফ্লো(flow) কে বন্ধ করে দেওয়ার জন্য প্রোগ্রামিং এ break স্টেটমেন্ট ব্যবহৃত হয়। এই অধ্যায়ে আপনি break স্টেটমেন্ট ব্যবহার করে সি প্রোগ্রামিং এর বিভিন্ন লুপকে তাৎক্ষনিক বন্ধ করে দেয়া শিখবেন।
মাঝে মাঝে টেষ্ট এক্সপ্রেশনকে চেক করা ছাড়াই লুপকে তাৎক্ষনিক বন্ধ করে দেওয়ার প্রয়োজন হয়। এক্ষেত্রে break স্টেটমেন্ট ব্যবহৃত হয়।
সি প্রোগ্রামিং break স্টেটমেন্ট
সি প্রোগ্রাম break স্টেটমেন্টের সাক্ষাৎ পাওয়া মাত্রই ব্রেক স্টেটমেন্ট for, while এবং do...while লুপকে তাৎক্ষনিক খতম করে ফেলে। সিদ্ধান্ত গ্রহণের জন্য ব্যবহৃত স্টেটমেন্ট যেমন-if...else স্টেটমেন্টে break স্টেটমেন্ট ব্যবহৃত হয়।
ব্রেক স্টেটমেন্টের সিনট্যাক্স
break;ব্রেক স্টেটমেন্টের ফ্লোচার্ট

ব্রেক স্টেটমেন্ট কিভাবে কাজ করে?

উদাহরন ১: ব্রেক স্টেটমেন্ট
kt_satt_skill_example_id=219
উদাহরন ২: ব্রেক স্টেটমেন্ট
kt_satt_skill_example_id=220
উপরের প্রোগ্রাম সর্বোচ্চ ১৫ টি সংখ্যার যোগফল নির্ণয় করে। কিন্তু ৬ নাম্বার ইনপুটে break স্টেটমেন্টের সাক্ষাৎ মেলায় সঙ্গে সঙ্গেই for লুপের সমাপ্তি ঘটেছে।
সি প্রোগ্রামিং এ switch...case স্টেটমেন্টেও break স্টেটমেন্ট ব্যবহৃত হয়।
লুপের সাধারণ ফ্লো(flow) পরিবর্তন করার জন্য প্রোগ্রামিং এ continue স্টেটমেন্ট ব্যবহৃত হয়। এই অধ্যায়ে আপনি সি প্রোগ্রামিং continue স্টেটমেন্ট ব্যবহার করে সি প্রোগ্রামিং এর বিভিন্ন লুপের ফ্লো পরিবর্তন করা শিখবেন।
লুপের ভেতরের কিছু স্টেটমেন্টকে মাঝে মাঝে এড়িয়ে যাওয়ার প্রয়োজন হয়। এক্ষেত্রে continue স্টেটমেন্ট ব্যবহৃত হয়।
সি প্রোগ্রামিং continue স্টেটমেন্ট
continue স্টেটমেন্ট লুপের মধ্যে কিছু স্টেটমেন্টকে এড়িয়ে যায়। সিদ্ধান্ত গ্রহণের জন্য ব্যবহৃত স্টেটমেন্ট যেমন- if...else স্টেটমেন্টে continue স্টেটমেন্ট ব্যবহৃত হয়।
সি প্রোগ্রামিং continue স্টেটমেন্টের সিনট্যাক্স
continue;
সি প্রোগ্রামিং continue স্টেটমেন্টের ফ্লোচার্ট

সি প্রোগ্রামিং continue স্টেটমেন্ট কিভাবে কাজ করে?

উদাহরন ১: সি প্রোগ্রামিং continue স্টেটমেন্ট
kt_satt_skill_example_id=223
উদাহরনঃ সি প্রোগ্রামিং continue স্টেটমেন্ট
kt_satt_skill_example_id=225
উপরের প্রোগ্রামে ইউজার ধনাত্মক সংখ্যা প্রবেশ করালে sum += number; স্টেটমেন্টের মাধ্যমে যোগফল নির্ণয় হতে থাকে।
কিন্তু ইউজার যখন ঋণাত্মক সংখ্যা প্রবেশ করায় তখন continue স্টেটমেন্ট এক্সিকিউট(execute) হয় এবং ঋণাত্মক সংখ্যাকে গণনা থেকে বাদ রাখে।
এই অধ্যায় শেষে আপনি সি প্রোগ্রামিং এ সুইচ(switch) স্টেটমেন্ট লেখা শিখবেন।
সি প্রোগ্রামিং switch...case স্টেটমেন্ট
নেস্টেড if...else স্টেটমেন্ট ব্যবহার করে আপনি অনেক ভ্যালুর বিপরীতে কোনো একটি নির্দিষ্ট কোড ব্লককে এক্সিকিউট(execute) করতে পারেন। কিন্তু আপনি যদি সিঙ্গেল ভ্যারিয়েবলের ভ্যালু চেক করাতে চান তাহলে nested if...else স্টেটমেন্টের পরিবর্তে switch স্টেটমেন্ট ব্যবহার করাই উত্তম হবে।
switch স্টেটমেন্ট প্রায়ই নেস্টেট if...else স্টেটমেন্টের চেয়ে দ্রুততর এবং সুইস স্টেটমেন্টের সিনট্যাক্সও তুলনামূলক সহজ ও স্বচ্ছ।
সি সুইস সিনট্যাক্স
switch (expression)
{
case value1:
//expression এর ভ্যালু value1 এর সমান হলে এই কোড এক্সিকিউট হবে;
break;
case value2:
//expression এর ভ্যালু value2 এর সমান হলে এই কোড এক্সিকিউট হবে;
break;
.
.
.
default:
//expression এর ভ্যালু কোনো value এর সমান না হলে এই কোড এক্সিকিউট হবে;
}
switch...case স্টেটমেন্ট কিভাবে কাজ করে?
- উপরের সিনট্যাক্সে expression প্রোগ্রামে শুধুমাত্র একবার এক্সিকিউশন(execution) হয়।
- এক্সপ্রেশনের ভ্যালু সুইস ব্লকের যেই case value এর সাথে মিলে যায় প্রোগ্রাম কন্ট্রোল তার কাছে চলে আসে ফলে সেই case value এর কোড ব্লকটি সম্পাদিত(execution) হয়।
- উপরের সিউডোকোড(pseudocode) এ expression এর ভ্যালু যদি value2 এর সমান হয় তাহলে কম্পাইলার case value2 এর কোড ব্লককে এক্সিকিউট করবে।
- case value2 এর পরে কোনো break স্টেটমেন্ট না থাকলে সুইস ব্লকের শেষ পর্যন্ত এক্সিকিউশন হবে।
- এক্সপ্রেশনের ভ্যালু সুইস ব্লকের কোনো case value এর সাথে না মিললে default এর কোড ব্লকটি সম্পাদিত হবে।
- পরবর্তী case কে এক্সিকিউট থেকে বাধা দিতে break স্টেটমেন্ট ব্যবহার করা হয়।
সি সুইস স্টেটমেন্ট ফ্লোচার্ট

উদাহরন ১: সুইস স্টেটমেন্ট
kt_satt_skill_example_id=230
উপরের প্রোগ্রামে ইউজার 4 ইনপুট দেওয়ায় এক্সপ্রেশনের ভ্যালু case 4 : এর সাথে মিলে গেছে এবং Tuesday প্রিন্ট হয়েছে।
উদাহরন ২: সুইস স্টেটমেন্ট
kt_satt_skill_example_id=232
ইউজার - অপারেটর ইনপুট দেওয়ায় ইহা oparetor ভ্যারিয়েবলে জমা হয়েছে। এবং দুটি অপারেন্ড 32.5 এবং 12.4 ইনপুট দেওয়ায় এগুলো যথাক্রমে firstNumber এবং secondNumber ভ্যারিয়েবলে জমা হয়েছে।
তারপরে প্রোগ্রামের কন্ট্রোল নিচের ব্লকে জাম্প করে।
printf("%.1lf - %.1lf = %.1lf",firstNumber, secondNumber, firstNumber-firstNumber);অবশেষে break statement সুইস স্টেটমেন্টের সমাপ্তি ঘটায়।
যদি break স্টেটমেন্ট ব্যবহার করা না হত তাহলে সঠিক case এর পরবর্তী সকল case এক্সিকিউট(execute) হত।
এই অধ্যায়ে আপনি সি প্রোগ্রামে goto স্টেটমেন্ট তৈরি করা শিখবেন। এছাড়া goto স্টেটমেন্ট কখন ব্যবহার করতে হবে এবং কখন করতে হবে না তাও শিখবেন।
সি প্রোগ্রামিং গোটু স্টেটমেন্ট
সি প্রোগ্রামে goto স্টেটমেন্ট জাম্প(jump) স্টেটমেন্ট হিসাবে পরিচিত।
সি প্রোগ্রামের সাধারণ ধারাকে পরিবর্তন করার জন্য goto স্টেটমেন্ট ব্যবহার করা হয়।
সি goto সিনট্যাক্স
goto label;
... .. ...
... .. ...
... .. ...
label:
statement;
এখানে label হলো আইডেন্টিফায়ার। যখন প্রোগ্রাম goto স্টেটমেন্টের দেখা পায় তখন প্রোগ্রামের কন্ট্রোল label:এর কাছে জাম্প(jump) করে এবং label ব্লকের এক্সিকিউশন(execution) শুরু হয়।

উদাহরনঃ goto Statement
kt_satt_skill_example_id=247
goto স্টেটমেন্ট ব্যবহার না করার কারণ
goto এর ব্যবহার প্রোগ্রামকে কঠিন করে ফেলে এবং অনেক সময় মনে হতে পারে প্রোগ্রামে bug রয়েছে। উদাহরনস্বরুপঃ
one:
for (i = 0; i < number; ++i)
{
test += i;
goto two;
}
two:
if (test > 5) {
goto three;
}
... .. ...
যাইহোক goto statement মাঝে মাঝে উপকারীও হতে পারে। যেমন- নেস্টেট লুপ থেকে ব্রেক নিতে চাইলে।
goto স্টেটমেন্ট ব্যবহার উচিৎ/ উচিৎ না?
আপনি যদি মনে করেন goto স্টেটমেন্টের ব্যবহার আপনার প্রোগ্রামকে সহজ করে তুলবে তাহলে আপনি ইহা ব্যবহার করতে পারেন। কারণ এখানকার উদ্দেশ্য হলো কোড সহজ করা যতে আপনার অনুসারীরা খুব সহজেই আপনার কোড বুঝতে পারে।
Read more